home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / wgdb-42.lha / wgdb-4.2 / include / tahoe-opcode.h < prev    next >
C/C++ Source or Header  |  1992-09-11  |  8KB  |  214 lines

  1. /*
  2.  * Ported by the State University of New York at Buffalo by the Distributed
  3.  * Computer Systems Lab, Department of Computer Science, 1991.
  4.  */
  5.  
  6. #ifndef tahoe_opcodeT
  7. #define tahoe_opcodeT int
  8. #endif /* no tahoe_opcodeT */
  9.  
  10. struct vot_wot                  /* tahoe opcode table: wot to do with this */
  11.                                 /* particular opcode */
  12. {
  13.   char *            args;       /* how to compile said opcode */
  14.   tahoe_opcodeT       code;     /* op-code (may be > 8 bits!) */
  15. };
  16.  
  17. struct vot                      /* tahoe opcode text */
  18. {
  19.   char *            name;       /* opcode name: lowercase string  [key]  */
  20.   struct vot_wot    detail;     /* rest of opcode table          [datum] */
  21. };
  22.  
  23. #define vot_how args
  24. #define vot_code code
  25. #define vot_detail detail
  26. #define vot_name name
  27.  
  28. static struct vot
  29. votstrs[] =
  30. {
  31. {    "halt",    {"",            0x00    } },
  32. {    "sinf",    {"",                    0x05    } },
  33. {    "ldf",     {"rl",                  0x06    } },
  34. {    "ldd",     {"rq",                  0x07    } },
  35. {    "addb2",    {"rbmb",        0x08    } },
  36. {    "movb",    {"rbwb",        0x09    } },
  37. {    "addw2",    {"rwmw",        0x0a    } },
  38. {    "movw",    {"rwww",        0x0b    } },
  39. {    "addl2",    {"rlml",        0x0c    } },
  40. {    "movl",    {"rlwl",        0x0d    } },
  41. {    "bbs",    {"rlvlbw",        0x0e    } },
  42. {    "nop",     {"",                    0x10    } },
  43. {    "brb",    {"bb",            0x11    } },
  44. {    "brw",    {"bw",            0x13    } },
  45. {    "cosf",    {"",                    0x15    } },
  46. {    "lnf",     {"rl",                  0x16    } },
  47. {    "lnd",     {"rq",                  0x17    } },
  48. {    "addb3",    {"rbrbwb",        0x18    } },
  49. {    "cmpb",    {"rbwb",        0x19    } }, 
  50. {    "addw3",    {"rwrwww",        0x1a    } },
  51. {    "cmpw",    {"rwww",        0x1b    } },
  52. {    "addl3",    {"rlrlwl",        0x1c    } },
  53. {    "cmpl",    {"rlwl",        0x1d    } },
  54. {    "bbc",    {"rlvlbw",        0x1e    } },
  55. {    "rei",    {"",            0x20    } },
  56. {    "bneq",    {"bb",            0x21    } },
  57. {    "bnequ",    {"bb",            0x21    } },
  58. {    "cvtwl",    {"rwwl",        0x23    } },
  59. {    "stf",     {"wl",                  0x26    } },
  60. {    "std",     {"wq",                  0x27    } },
  61. {    "subb2",    {"rbmb",        0x28    } },
  62. {    "mcomb",    {"rbwb",        0x29    } },
  63. {    "subw2",    {"rwmw",        0x2a    } },
  64. {    "mcomw",    {"rwww",        0x2b    } },
  65. {    "subl2",   {"rlml",                0x2c    } },
  66. {    "mcoml",   {"rlwl",                0x2d    } },
  67. {    "emul",    {"rlrlrlwq",        0x2e    } },
  68. {    "aoblss",    {"rlmlbw",        0x2f    } },
  69. {    "bpt",    {"",            0x30    } },
  70. {    "beql",    {"bb",            0x31    } },
  71. {    "beqlu",    {"bb",            0x31    } },
  72. {    "cvtwb",    {"rwwb",        0x33    } },
  73. {    "logf",    {"",                    0x35    } },
  74. {    "cmpf",    {"rl",                  0x36    } },
  75. {    "cmpd",    {"rq",                  0x37    } },
  76. {    "subb3",    {"rbrbwb",        0x38    } },
  77. {    "bitb",    {"rbrb",        0x39    } },
  78. {    "subw3",    {"rwrwww",        0x3a    } },
  79. {    "bitw",    {"rwrw",        0x3b    } },
  80. {    "subl3",    {"rlrlwl",        0x3c    } },
  81. {    "bitl",    {"rlrl",        0x3d    } },
  82. {    "ediv",    {"rlrqwlwl",        0x3e    } },
  83. {    "aobleq",    {"rlmlbw",        0x3f    } },
  84. {    "ret",    {"",            0x40    } },
  85. {    "bgtr",    {"bb",            0x41    } },
  86. {    "sqrtf",   {"",                    0x45    } },
  87. {    "cmpf2",   {"rl",                  0x46    } },
  88. {    "cmpd2",   {"rqrq",                0x47    } },
  89. {    "shll",    {"rbrlwl",              0x48    } },
  90. {    "clrb",    {"wb",            0x49    } },
  91. {    "shlq",    {"rbrqwq",        0x4a    } },
  92. {    "clrw",    {"ww",            0x4b    } },
  93. {    "mull2",    {"rlml",        0x4c    } },
  94. {    "clrl",    {"wl",            0x4d    } },
  95. {    "shal",    {"rbrlwl",        0x4e    } },
  96. {    "bleq",    {"bb",            0x51    } },
  97. {    "expf",    {"",                    0x55    } },
  98. {    "tstf",    {"",                    0x56    } },
  99. {    "tstd",    {"",                    0x57    } },
  100. {    "shrl",    {"rbrlwl",        0x58    } },
  101. {    "tstb",    {"rb",            0x59    } },
  102. {    "shrq",    {"rbrqwq",        0x5a    } },
  103. {    "tstw",    {"rw",            0x5b    } },
  104. {    "mull3",    {"rlrlwl",        0x5c    } },
  105. {    "tstl",    {"rl",            0x5d    } },
  106. {    "shar",    {"rbrlwl",        0x5e    } },
  107. {    "bbssi",    {"rlmlbw",        0x5f    } },
  108. {    "ldpctx",    {"",            0x60    } },
  109. {    "pushd",   {"",                    0x67    } },
  110. {    "incb",    {"mb",            0x69    } },
  111. {    "incw",    {"mw",            0x6b    } },
  112. {    "divl2",    {"rlml",        0x6c    } },
  113. {    "incl",    {"ml",            0x6d    } },
  114. {    "cvtlb",    {"rlwb",        0x6f    } },
  115. {    "svpctx",    {"",            0x70    } },
  116. {    "jmp",    {"ab",            0x71    } },
  117. {    "cvlf",    {"rl",                  0x76    } },
  118. {    "cvld",    {"rl",                  0x77    } },
  119. {    "decb",    {"mb",            0x79    } },
  120. {    "decw",    {"mw",            0x7b    } },
  121. {    "divl3",    {"rlrlwl",        0x7c    } },
  122. {    "decl",    {"ml",            0x7d    } },
  123. {    "cvtlw",    {"rlww",        0x7f    } },
  124. {    "bgeq",    {"bb",            0x81    } },
  125. {    "movs2",    {"abab",        0x82    } },
  126. {    "cvfl",    {"wl",                  0x86    } },
  127. {    "cvdl",    {"wl",                  0x87    } },
  128. {    "orb2",    {"rbmb",        0x88    } },
  129. {    "cvtbl",    {"rbwl",        0x89    } },
  130. {    "orw2",    {"rwmw",        0x8a    } },
  131. {    "bispsw",    {"rw",            0x8b    } },
  132. {    "orl2",    {"rlml",                0x8c    } },
  133. {    "adwc",    {"rlml",        0x8d    } },
  134. {    "adda",     {"rlml",        0x8e    } },
  135. {    "blss",    {"bb",            0x91    } },
  136. {    "cmps2",   {"abab",        0x92    } },
  137. {    "ldfd",    {"rl",                  0x97    } },
  138. {    "orb3",    {"rbrbwb",        0x98    } },
  139. {    "cvtbw",    {"rbww",        0x99    } },
  140. {    "orw3",       {"rwrwww",        0x9a    } },
  141. {    "bicpsw",    {"rw",            0x9b    } },
  142. {    "orl3",    {"rlrlwl",              0x9c    } },
  143. {    "sbwc",    {"rlml",        0x9d    } },
  144. {    "suba",    {"rlml",                0x9e    } },
  145. {    "bgtru",    {"bb",            0xa1    } },
  146. {    "cvdf",    {"",                    0xa6    } },
  147. {    "andb2",   {"rbmb",        0xa8    } },
  148. {    "movzbl",    {"rbwl",        0xa9    } },
  149. {    "andw2",   {"rwmw",        0xaa    } },
  150. {    "loadr",   {"rwal",        0xab    } },
  151. {    "andl2",   {"rlml",        0xac    } },
  152. {    "mtpr",    {"rlrl",        0xad    } },
  153. {    "ffs",    {"rlwl",        0xae    } },
  154. {    "blequ",    {"bb",            0xb1    } },
  155. {    "negf",    {"",                    0xb6    } },
  156. {    "negd",    {"",                    0xb7    } },
  157. {    "andb3",   {"rbrbwb",              0xb8    } },
  158. {    "movzbw",    {"rbww",        0xb9    } },
  159. {    "andw3",   {"rwrwww",        0xba    } },
  160. {    "storer",  {"rwal",                0xbb    } },
  161. {    "andl3",   {"rlrlwl",        0xbc    } },
  162. {    "mfpr",    {"rlwl",        0xbd    } },
  163. {    "ffc",    {"rlwl",        0xbe    } },
  164. {    "calls",    {"rbab",        0xbf    } },
  165. {    "prober",    {"rbabrl",        0xc0    } },
  166. {    "bvc",    {"bb",            0xc1    } },
  167. {    "movs3",    {"ababrw",        0xc2    } },
  168. {    "movzwl",    {"rwwl",        0xc3    } },
  169. {    "addf",    {"rl",                  0xc6    } },
  170. {    "addd",    {"rq",                  0xc7    } },
  171. {    "xorb2",   {"rbmb",                0xc8    } },
  172. {    "movob",   {"rbwb",                0xc9    } },
  173. {    "xorw2",   {"rwmw",                0xca    } },
  174. {    "movow",   {"rwww",                0xcb    } },
  175. {    "xorl2",    {"rlml",                0xcc    } },
  176. {    "movpsl",  {"wl",                  0xcd    } },
  177. {    "kcall",   {"rw",            0xcf    } },
  178. {    "probew",  {"rbabrl",        0xd0    } },
  179. {    "bvs",     {"bb",            0xd1    } },
  180. {    "cmps3",   {"ababrw",        0xd2    } },
  181. {    "subf",    {"rq",                  0xd6    } },
  182. {    "subd",    {"rq",                  0xd7    } },
  183. {    "xorb3",    {"rbrbwb",        0xd8    } },
  184. {    "pushb",   {"rb",            0xd9    } },
  185. {    "xorw3",    {"rwrwww",        0xda    } },
  186. {    "pushw",   {"rw",             0xdb    } },
  187. {    "xorl3",    {"rlrlwl",        0xdc    } },
  188. {    "pushl",    {"rl",            0xdd    } },
  189. {    "insque",    {"abab",        0xe0    } },
  190. {    "bcs",    {"bb",            0xe1    } },
  191. {    "bgequ",    {"bb",            0xe1    } },
  192. {    "mulf",    {"rq",                  0xe6    } },
  193. {    "muld",    {"rq",                  0xe7    } },
  194. {    "mnegb",    {"rbwb",        0xe8    } },
  195. {    "movab",    {"abwl",        0xe9    } },
  196. {    "mnegw",    {"rwww",        0xea    } },
  197. {    "movaw",    {"awwl",        0xeb    } },
  198. {    "mnegl",    {"rlwl",        0xec    } },
  199. {    "moval",    {"alwl",        0xed    } },
  200. {    "remque",    {"ab",          0xf0    } },
  201. {    "bcc",    {"bb",            0xf1    } },
  202. {    "blssu",    {"bb",            0xf1    } },
  203. {    "divf",    {"rq",                  0xf6    } },
  204. {    "divd",    {"rq",                  0xf7    } },
  205. {    "movblk",  {"alalrw",              0xf8    } },
  206. {    "pushab",    {"ab",            0xf9    } },
  207. {    "pushaw",    {"aw",            0xfb    } },
  208. {    "casel",    {"rlrlrl",        0xfc    } },
  209. {    "pushal",    {"al",            0xfd    } },
  210. {    "callf",    {"rbab",        0xfe    } },
  211. {      ""       ,   ""          } /* empty is end sentinel */
  212.  
  213. };
  214.